関係
関連情報はデータベース内の別のビジネス オブジェクトに格納されます。ビジネス オブジェクト間の関係を定義した後、その関係を使用してデータベースに格納されている関連付けられた情報を検索します。
たとえば、ユーザが登録した問題について質問するためにユーザに電話をかけたいとします。ユーザの電話番号は「ユーザ」ビジネス オブジェクトに記録されています。問題は「問題」ビジネス オブジェクトに記録されています。対象の「問題」を見つけると、2つのビジネス オブジェクト間の関係に基づいて電話番号が検索されます。ユーザが問題を登録するたびに電話番号が格納されるわけではありません。関連付けられたユーザ ビジネス オブジェクトに、1 度だけ格納されます。
オブジェクトとコレクションの関係
関係には次の 2 種類があります。
オブジェクト関係 – オブジェクト A と B との関係では、オブジェクト B に A に対する関係が作成されますが、A には B に対する関係がありません。
これは、オブジェクト B で A の1つの値を選択する場合に有用です。たとえば、要求のユーザを選択する場合などです。
コレクション関係 – 複数の関連付けられたオブジェクトをコア オブジェクトに作成し、任意の関連付けられたオブジェクトからコア オブジェクトを表示できます。A に対する関係はオブジェクト B に作成され、B に対するコレクション関係は A に作成されます。
これは、コア ビジネス オブジェクトから、関連付けられたオブジェクトの複数のインスタンスを作成する場合に有用です。たとえば、要求にメモを追加する場合などです。
結合されていないコレクションは作成しないでください。システムのパフォーマンスに悪影響を及ぼします。多くの場合、データベースのサイズが拡大するにつれ、結合されていないコレクションも拡大します。たとえば、インシデントは一定期間後にクローズし、その後には新しいメモを追加できないため、インシデント・メモは結合されたコレクションです。一方、各ユーザに対して記録されたインシデント数が増えるにつれ、コレクションのオブジェクト数が増大するため、ユーザ・インシデント コレクションは結合されていないコレクションです。各ユーザに記録されたインシデントを表示する場合は、クエリを作成することをお勧めします。